// samsting : this file is auto create.

#ifndef ALIYUN_Ecs_DescribeAutoSnapshotPolicyResponse_H_
#define ALIYUN_Ecs_DescribeAutoSnapshotPolicyResponse_H_

#include "core/acs_response.h"

namespace aliyun { namespace Ecs {

class DescribeAutoSnapshotPolicyResponse : public AcsResponse {
public:
  DescribeAutoSnapshotPolicyResponse();

  class AutoSnapshotPolicy {
    friend class DescribeAutoSnapshotPolicyResponse;
  public:
    const string& GetSystemDiskPolicyEnabled(void) const;
    const string& GetSystemDiskPolicyTimePeriod(void) const;
    const string& GetSystemDiskPolicyRetentionDays(void) const;
    const string& GetSystemDiskPolicyRetentionLastWeek(void) const;
    const string& GetDataDiskPolicyEnabled(void) const;
    const string& GetDataDiskPolicyTimePeriod(void) const;
    const string& GetDataDiskPolicyRetentionDays(void) const;
    const string& GetDataDiskPolicyRetentionLastWeek(void) const;
  private:
    string SystemDiskPolicyEnabled_;
    string SystemDiskPolicyTimePeriod_;
    string SystemDiskPolicyRetentionDays_;
    string SystemDiskPolicyRetentionLastWeek_;
    string DataDiskPolicyEnabled_;
    string DataDiskPolicyTimePeriod_;
    string DataDiskPolicyRetentionDays_;
    string DataDiskPolicyRetentionLastWeek_;
  }; // AutoSnapshotPolicy 


  class AutoSnapshotExcutionStatus {
    friend class DescribeAutoSnapshotPolicyResponse;
  public:
    const string& GetSystemDiskExcutionStatus(void) const;
    const string& GetDataDiskExcutionStatus(void) const;
  private:
    string SystemDiskExcutionStatus_;
    string DataDiskExcutionStatus_;
  }; // AutoSnapshotExcutionStatus 

  const AutoSnapshotPolicy& GetAutoSnapshotPolicy(void) const;
  const AutoSnapshotExcutionStatus& GetAutoSnapshotExcutionStatus(void) const;
  int  GetAutoSnapshotOccupation(void) const;

private:
  AutoSnapshotPolicy AutoSnapshotPolicy_;
  AutoSnapshotExcutionStatus AutoSnapshotExcutionStatus_;
  int    AutoSnapshotOccupation_;

protected:
  const char* BaseKey(void);
  void         UnmarshallerMap(std::map<string, string>& response_map);

};

} } // namespace aliyun { namespace Ecs {

#endif // #ifndef ALIYUN_Ecs_DescribeAutoSnapshotPolicyResponse_H_

// end of file 
